Content on a computer is frequently displayed on a display screen in one of two modes. One of the modes is called Full-Screen Mode, while the other mode is frequently referred to as Windowed Mode. Full-Screen Mode is used for applications that are the exclusive content provider for a display screen. In other words, when a single application displays content that occupies the full screen and there are no other applications that are displaying content on top of that screen, then that application might run in Full-Screen Mode. Windowed Mode is used when multiple applications, or processes, occupy or share the display screen concurrently. For example, a web browser application might be displayed such that it covers an entire display screen while a pop-up window having volume controls, or some other kind of accessory, might be displayed on top of that browser window. Another example might be a calendar reminder (e.g., issued by a calendaring program) that pops up in front of a word processing application that was previously occupying the full screen. In these situations, when multiple processes or applications are sharing the display screen, Windowed Mode is used to composite the content onto the display screen.
Both the Windowed Mode and Full-Screen Mode have various advantages and disadvantages. The advantage of Windowed Mode, obviously, is that content from multiple applications, or processes, can be composited onto a display screen at the same time. Full-Screen Mode, on the other hand, can have the advantage, for example, of reducing the need for buffer space in video memory and can allow certain types of content (e.g., video content) to display more efficiently and with less jitter, delay and/or other errors.
In a very generic way, the ability to manually switch between Windowed Mode and Full-Screen Mode is known in the art. However, there are challenges involved in automatically switching between the Windowed Mode and the Full-Screen Mode. Traditional systems may not automatically detect conditions that allow the system to switch between a Full-Screen Mode and Windowed Mode. Further complexity is added when a system for displaying video content is “double buffered.” Double buffering involves the use of multiple buffers to prepare video content, or other display content from an application, for rendering to a display screen.